// 固定的头部一级分类、二级分类数据
import { topCategory } from '@/api/constants.js'
// 请求头部一级分类、二级分类数据的函数
import { findAllCategory } from '@/api/category'

// 分类模块
export default {
  namespaced: true,
  state () {
    return {
      // 头部一级分类、二级分类初始数据
      list: topCategory.map(item => ({ name: item }))
    }
  },

  mutations: {
    // 修改头部一级分类、二级分类数据
    setList (state, payload) {
      state.list = payload
    },
    // 显示当前二级分类函数
    show (state, id) {
      // 找到当前点击的一级分类对象
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = true
    },
    // 隐藏当前二级分类函数
    hide (state, id) {
      // 找到当前点击的一级分类对象
      const currCategory = state.list.find(item => item.id === id)
      currCategory.open = false
    }

  },

  actions: {
    // 请求头部一级分类、二级分类数据
    async getList (ctx) {
      const data = await findAllCategory()
      // 给每个的一级分类都添加一个open属性控制二级分类显示与隐藏
      data.result.forEach(element => {
        // 默认二级分类都是隐藏
        element.open = false
      })
      ctx.commit('setList', data.result)
    }
  }

}
